package com.dick.base.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 生产数据表
 */
@TableName("produce_item")
@Data
public class ProduceItem {

    /**
     * 加工状态-未发布
     */
    public static final Integer STATUS_INIT = 0;
    /**
     * 加工状态-待加工
     */
    public static final Integer STATUS_TO_BE_PRODUCED = 10;
    /**
     * 加工状态-加工中
     */
    public static final Integer STATUS_PRODUCING = 20;
    /**
     * 加工状态-加工完成
     */
    public static final Integer STATUS_PRODUCED = 30;
    /**
     * 加工状态-打包完成
     */
    public static final Integer STATUS_PACKAGED = 40;
    /**
     * 加工状态-出库完成
     */
    public static final Integer STATUS_CHECKED_OUT = 50;
    /**
     * 加工状态-已作废
     */
    public static final Integer STATUS_REMOVED = -100;

    @TableId
    private Long id;

    /**
     * 材质，长度限制0~32
     */
    private String material;
    /**
     * 厚度，长度限制0~32，单位mm
     */
    private String thickness;
    /**
     * 宽度，int类型，单位mm
     */
    private Integer width;
    /**
     * 长度，int类型，单位mm
     */
    private Integer length;
    /**
     * 数量，int类型，单位：张
     */
    private Integer quantity;
    /**
     * 重量，decimal类型，单位：千克
     */
    private BigDecimal weight;
    /**
     * 是否贴膜
     */
    private Boolean film;
    /**
     * 是否改板
     */
    private Boolean changeSpecification;
    /**
     * 顺序，int类型
     */
    private Integer itemIndex;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 数据状态：10-待加工 20-加工中 30-加工完成 40-打包完成 50-出库完成
     */
    private Integer status;

    /**
     * 工程id，冗余存储
     */
    private Long projectId;
    /**
     * 工程名称，冗余存储,0~16
     */
    private String projectName;
    /**
     * 批次号，冗余存储，0~32
     */
    private String projectBatchNumber;
    /**
     * 客户简称，冗余存储，0~8
     */
    private String customerNickname;
    /**
     * 负责加工的用户id
     */
    private Long userId;
    /**
     * 托盘id
     */
    private Long shelfId;

    private LocalDateTime updateTime;
    private LocalDateTime createTime;
}
